iT邦幫忙

2022 iThome 鐵人賽

DAY 4
0
Mobile Development

IOS新手之旅系列 第 4

IOS新手之旅 Day4:計時器(1)

  • 分享至 

  • xImage
  •  

昨天完成了碼表的部分,今天就開始做計時器吧。

計時器其實跟碼表的做法不會差太多,但是會稍微麻煩一點,因為會用到新的UI還有alert的部分。

那麼一樣,先拉好要用的UI和layout,避免跑版,拉好之後大概像這樣,上面一個Label和PickerView疊在一起,下面兩個Button。

PickerView

這裡會用到新的UI,PickerView。

這裡是設定PickerView的程式,第一個是設定PickerView橫向有幾個欄位。

    let numbersOf24 = [Int](0...23)
    let numbersOf60 = [Int](0...59)
    
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        return 6
    }

第二個是設定每一個欄位裡面,有幾個元件。

    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
        switch component {
        case 0:return numbersOf24.count
        case 2:return numbersOf60.count
        case 4:return numbersOf60.count
        default:return 1
        }
    }

第三個是設定每個元件裡的內容。

    
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        switch component {
        case 0:return numbersOf24[row].description
        case 1:return "時"
        case 2:return numbersOf60[row].description
        case 3:return "分"
        case 4:return numbersOf60[row].description
        case 5:return "秒"
        default:return "error"
        }
    }
    

最後一個就是將選擇的元件的內容存進對應的變數裡。

    var hour = 0
    var minute = 0
    var second = 0
    var timeInterval = 0
    
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        switch component {
        case 0:hour = numbersOf24[row]
        case 2:minute = numbersOf60[row]
        case 4:second = numbersOf60[row]
        default:
            return
        }
    }

那麼今天設定完PickerView和寫好功能,明天就來新增兩個Button的功能吧。


上一篇
IOS新手之旅 Day3:碼表(2)
下一篇
IOS新手之旅 Day5:計時器(2)
系列文
IOS新手之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言